#pragma once
#include "xvector.h"

template<typename T>
class xstack :
	public xvector<T>
{
private: 
	xstack<T> & operator=(const xstack<T> &)
	{
		NOTIMPL
	}
public: 
	xstack()
	{
		NOTIMPL
	}
private: 
	xstack(const xstack<T> &)
	{
		NOTIMPL
	}

public: 
	typedef typename _xvector_reverse_iterator<T> iterator;
	typedef typename _xvector_const_reverse_iterator<T> const_iterator;
	typedef typename _xvector_iterator<T> reverse_iterator;
	typedef typename _xvector_const_iterator<T> const_reverse_iterator ;


	virtual ~xstack()
	{
		NOTIMPL
	}

	HRESULT front(T &)
	{
		NOTIMPL
	}

	HRESULT back(T &)
	{
		NOTIMPL
	}

	HRESULT top(T &)
	{
		NOTIMPL
	}

	HRESULT bottom(T &)
	{
		NOTIMPL
	}

	HRESULT reserve(XUINT32)
	{
		NOTIMPL
	}

	HRESULT push(const T & val)
	{
		NOTIMPL
	}

	HRESULT pop()
	{
		NOTIMPL
	}

	void clear()
	{
		NOTIMPL
	}

	XUINT32 size()
	{
		NOTIMPL
	}

	XUINT32 empty() const
	{
		NOTIMPL
	}


	const_iterator begin() const
	{
		NOTIMPL
	}

	iterator begin()
	{
		NOTIMPL
	}

	const_iterator end() const
	{
		NOTIMPL
	}

	iterator end()
	{
		NOTIMPL
	}

	const_reverse_iterator rbegin() const
	{
		NOTIMPL
	}

	reverse_iterator rbegin()
	{
		NOTIMPL
	}

	const_reverse_iterator rend() const
	{
		NOTIMPL
	}

	reverse_iterator rend()
	{
		NOTIMPL
	}
};

